package view; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.LayoutManager; import java.awt.event.ActionListener; import java.util.Iterator; import java.util.TreeSet; import java.util.Vector; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.event.MenuListener; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableModel; import model.Product; public class AdminView extends JFrame { private JTextField id; private JTextField book; private JTextField author; private JTextField publisher; private JTextField price; private JTextField quantity; private JScrollPane scroll; private JTable table; public DefaultTableModel model; private JMenu viewAndChange; private JMenu viewOrders; private JPanel panelAdd; private JPanel panelView; private JPanel panelOrders; private JButton buttonAdd; private JButton buttonRemoveProduct; private Vector listData; private JList orderList; private JScrollPane scrollPane; public AdminView() { super("Administrator"); this.setSize(500, 500); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); createMenuBar(); panelAdd = new JPanel(new GridLayout(7, 2)); createAddPanel(panelAdd); this.add(panelAdd); panelView = new JPanel(); createViewPanel(panelView); this.add(panelView); panelOrders = new JPanel(); createOrderPanel(panelOrders); this.add(panelOrders); panelAdd.setVisible(false); panelView.setVisible(false); this.setVisible(false); } private void createAddPanel(JPanel panelAdd) { panelAdd.setSize(440, 440); JLabel idL = new JLabel("ID: "); id = new JTextField(); id.setBounds(5, 5, 10, 10); panelAdd.add(idL); panelAdd.add(id); JLabel bookL = new JLabel("Book: "); book = new JTextField(); book.setBounds(5, 5, 10, 10); panelAdd.add(bookL); panelAdd.add(book); JLabel authorL = new JLabel("Author: "); author = new JTextField(); author.setBounds(5, 5, 10, 10); panelAdd.add(authorL); panelAdd.add(author); JLabel publisherL = new JLabel("Publisher: "); publisher = new JTextField(); publisher.setBounds(5, 5, 10, 10); panelAdd.add(publisherL); panelAdd.add(publisher); JLabel priceL = new JLabel("Price: "); price = new JTextField(); price.setBounds(5, 5, 10, 10); panelAdd.add(priceL); panelAdd.add(price); JLabel quantityL = new JLabel("Quantity: "); quantity = new JTextField(); quantity.setBounds(5, 5, 10, 10); panelAdd.add(quantityL); panelAdd.add(quantity); JLabel emptyLabel = new JLabel(); panelAdd.add(emptyLabel); buttonAdd = new JButton("Add product"); buttonAdd.setBounds(5, 5, 10, 10); panelAdd.add(buttonAdd); } private void createViewPanel(JPanel panelView) { panelView.setSize(480, 480); Object[] rowCount = new Object[] { "ID", "Book", "Author", "Publisher", "Price", "Quantity" }; model = new DefaultTableModel(null, rowCount); table = new JTable(model); scroll = new JScrollPane(table); scroll.setPreferredSize(new Dimension(480,200)); panelView.add(scroll); panelView.add(this.getPanelAdd()); buttonRemoveProduct = new JButton("Remove product"); buttonRemoveProduct.setSize(10,10); panelView.add(buttonRemoveProduct); } private void createOrderPanel(JPanel panelOrders){ panelOrders.setSize(480,480); listData = new Vector(); orderList = new JList(listData); scrollPane = new JScrollPane(); scrollPane.setPreferredSize(new Dimension(480,400)); scrollPane.getViewport().add(orderList); panelOrders.add(scrollPane); } private void createMenuBar() { JMenuBar menubar = new JMenuBar(); viewAndChange = new JMenu("View & Change stock"); viewOrders = new JMenu("View orders"); menubar.add(viewAndChange); menubar.add(viewOrders); setJMenuBar(menubar); } public String getId() { return id.getText(); } public String getBook() { return book.getText(); } public void setBook(JTextField book) { this.book = book; } public String getAuthor() { return author.getText(); } public void setAuthor(JTextField author) { this.author = author; } public String getPublisher() { return publisher.getText(); } public void setPublisher(JTextField publisher) { this.publisher = publisher; } public String getPrice() { return price.getText(); } public void setPrice(JTextField price) { this.price = price; } public String getQuantity() { return quantity.getText(); } public void setQuantity(JTextField quantity) { this.quantity = quantity; } public DefaultTableModel getModel() { return this.model; } public JMenu getViewAndChange() { return viewAndChange; } public void setViewAndChange(JMenu viewAndChange) { this.viewAndChange = viewAndChange; } public Vector getListData() { return listData; } public JList getOrderList(){ return orderList; } public void setListData(Vector listData) { this.listData = listData; } public JPanel getPanelAdd(){ return this.panelAdd; } public JPanel getPanelView(){ return this.panelView; } public JPanel getPanelOrders(){ return this.panelOrders; } public JTable getTable(){ return this.table; } public void addTableActionListener(TableModelListener tme) { model.addTableModelListener(tme); } public void viewChangeListener(MenuListener l) { viewAndChange.addMenuListener(l); } public void viewOrdersListener(MenuListener l) { viewOrders.addMenuListener(l); } public void addAddButtonListener(ActionListener l){ buttonAdd.addActionListener(l); } public void addRemoveButtonListener(ActionListener l){ buttonRemoveProduct.addActionListener(l); } public void paintTable(TreeSet<Product> products) { Iterator<Product> itr = products.iterator(); while (itr.hasNext()) { Product p1 = itr.next(); this.model.addRow(new Object[] { p1.getIdProduct(), p1.getTitle(), p1.getAuthor(), p1.getPublisher(), p1.getPrice(), p1.getQuantity() }); } } }